package com.example.saiaadmin.entry;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import lombok.Data;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;

/**
 * 代码生成业务字段表
 *
 *  @author  Vagrant
 * @since 2025/01/13
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class EbToolGenerateColumns implements Serializable {
    @Serial
    private static final long serialVersionUID = -6489523410071352345L;
    /**
     * 主键
     */
    private Integer id;
    /**
     * 所属表ID
     */
    private Integer tableId;
    /**
     * 字段名称
     */
    private String columnName;
    /**
     * 字段注释
     */
    private String columnComment;
    /**
     * 字段类型
     */
    private String columnType;
    /**
     * 默认值
     */
    private String defaultValue;
    /**
     * 1 非主键 2 主键
     */
    private Integer isPk;
    /**
     * 1 非必填 2 必填
     */
    private Integer isRequired;
    /**
     * 1 非插入字段 2 插入字段
     */
    private Integer isInsert;
    /**
     * 1 非编辑字段 2 编辑字段
     */
    private Integer isEdit;
    /**
     * 1 非列表显示字段 2 列表显示字段
     */
    private Integer isList;
    /**
     * 1 非查询字段 2 查询字段
     */
    private Integer isQuery;
    /**
     * 1 非排序 2 排序
     */
    private Integer isSort;
    /**
     * 查询方式 eq 等于, neq 不等于, gt 大于, lt 小于, like 范围
     */
    private String queryType;
    /**
     * 页面控件,text, textarea, password, select, checkbox, radio, date, upload, ma-upload(封装的上传控件)
     */
    private String viewType;
    /**
     * 字典类型
     */
    private String dictType;
    /**
     * 允许查看该字段的角色
     */
    private String allowRoles;
    /**
     * 字段其他设置
     */
    private String options;
    /**
     * 排序
     */
    private Integer sort;
    /**
     * 备注
     */
    private String remark;
    /**
     * 创建者
     */
    private Integer createdBy;
    /**
     * 更新者
     */
    private Integer updatedBy;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
    /**
     * 删除时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime deleteTime;
}